
cmake_minimum_required(VERSION 3.7)
project (EnableStandard CUDA)

#Goal for this example:
#build cuda sources that require C++11 to be enabled.

add_library(CUDAStatic11 STATIC static.cu)
add_library(CUDADynamic11 SHARED shared.cu)

add_executable(CudaOnlyEnableStandard main.cu)
target_link_libraries(CudaOnlyEnableStandard PRIVATE CUDAStatic11 CUDADynamic11)

target_compile_features(CUDADynamic11 PRIVATE cuda_std_11)
set_target_properties(CUDAStatic11 PROPERTIES CUDA_STANDARD 11)
set_target_properties(CUDAStatic11 PROPERTIES CUDA_STANDARD_REQUIRED TRUE)

#Verify CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
foreach(dir ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
  if(NOT IS_DIRECTORY "${dir}")
    message(FATAL_ERROR
      "CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES entry\n"
      " ${dir}\n"
      "is not an existing directory."
      )
  endif()
endforeach()
